package pe.edu.upc.dew.grupo02.dao;

import java.util.List;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;

import pe.edu.upc.dew.grupo02.model.Usuario;

public class UsuarioDao extends SimpleJdbcDaoSupport implements IUsuario {

	@Override
	public void crear(Usuario usuario) {
		getSimpleJdbcTemplate().update("insert into usuario(coUsuario,nombre,apellidos,correo,clave)" +
				" values(?,?,?,?,?)",usuario.getCoUsuario(),usuario.getNombre(),usuario.getApellidos(),usuario.getCorreo(),usuario.getClave());
		
	}

	@Override
	public void actualizar(Usuario usuario) {
		getSimpleJdbcTemplate().update("update usuario set nombre=?,apellidos=?,correo=?,clave=? where " +
				"coUsuario=?", usuario.getNombre(),usuario.getApellidos(),usuario.getCorreo(),usuario.getClave(),usuario.getCoUsuario());
	}

	@Override
	public void eliminar(int coUsuario) {
		getSimpleJdbcTemplate().update("delete from usuario where coUsuario=?", coUsuario);
		
	}

	@Override
	public Usuario getUsuario(int coUsuario) {
		return getSimpleJdbcTemplate().queryForObject("select cousuario,nombre,apellidos,correo,clave from " +
				"usuario where coUsuario=?", new BeanPropertyRowMapper<Usuario>(Usuario.class), coUsuario);
	}

	@Override
	public List<Usuario> getUsuarios() {
		return getSimpleJdbcTemplate().query("select cousuario,nombre,apellidos,correo,clave from usuario", new BeanPropertyRowMapper<Usuario>(Usuario.class));
	}

	@Override
	public Usuario getUsuarioPorEmail(String email) {
		return getSimpleJdbcTemplate().queryForObject("select cousuario,nombre,apellidos,correo,clave from usuario where correo=?", new BeanPropertyRowMapper<Usuario>(Usuario.class),email);
	}

}
